Ordering of ranked documents

ABSTRACT

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for distributing and presenting of electronic content. One method provides an enhanced ordering of ranked documents, in which one or more lists of documents that have been published in a web feed, a time that each document was published in the web feed, and a content-based ranking of a ranked subset of the documents are obtained, the documents collectively including ranked documents which are members of the ranked subset of the documents, and unranked documents which are not members of the ranked subset of the documents. Furthermore, a user interface is provided which displays links to a plurality of the ranked documents, ordered according to the content-based ranking, and which simultaneously displays links to a plurality of the unranked documents, ordered chronologically based on the time that each respective document was published in the web feed.

CROSS-REFERENCE TO RELATED APPLICATION

This patent application is a continuation (and claims the benefit ofpriority under 35 USC 120) of U.S. patent application Ser. No.12/688,204, filed Jan. 15, 2010, which claims the benefit of U.S.Provisional Patent Application No. 61/223,228, filed Jul. 6, 2009, whichare incorporated herein by reference.

BACKGROUND

This specification relates to the distribution and presentation ofelectronic content.

A web feed (or ‘news feed’) is a format for delivering frequentlyupdated web content to users. In a typical scenario, a feed publicationsite publishes a feed link which a user may register with his or herfeed reader. The feed reader periodically queries or checks the feedpublication site to determine whether new content has been publishedand, if so, the new content (or a link to the new content) is downloadedby the feed reader and displayed to the user.

SUMMARY

This specification describes technologies relating to the distributionand presentation of electronic content.

In general, one innovative aspect of the subject matter described inthis specification can be embodied in methods that include the action ofranking certain documents that have been published in a web feed basedon their content or merit. For example, documents that are currentlybeing published in a web feed (which will be referred to as ‘rankeddocuments’) may be sorted or ordered based on a priority rankingassigned to the documents by the feed publication site. Alternatively,these documents may be sorted or ordered based on the extent to whichthe operator of the feed publication site, other past users, or thirdparties, have accessed, commented upon, or otherwise expressed theiropinion of, or satisfaction with, this content.

In the case where the documents are ranked by a third party, the rankingcan be provided explicitly, such as where the third party provides adata structure which assigns a rank or priority to each document, or theranking can be provided implicitly, such as where the rank of thedocument is expressed in the order in which the documents are providedto the user. In either case, this specification describes techniquesrelating to ‘high-fidelity’ ordering, which is intended to describeordering in which the links to the documents that are currently rankedby the third party are displayed by the feed reader according to thatcurrent ranking.

In addition to ranked documents, however, the web feed may also publishdocuments that have not been ranked, documents that were previouslyranked but are no longer ranked, or documents that are no longercurrently being published by the feed publication site (which willcollectively be referred to as ‘unranked documents’). This specificationalso describes techniques relating to ‘hybrid high-fidelity’ ordering,which is intended to describe ordering in which links to one or more ofthe ranked documents are displayed in one region of a user interface ofa feed reader, at the same time as links to one or more of the unrankeddocuments are displayed in another region of the user interface.

These and other embodiments can each optionally include one or more ofthe following features. The links to the ranked documents may bedisplayed above the links to the unranked documents. Furthermore, thelinks to the unranked documents may be ordered for display on the userinterface in a different manner than the ranked documents are ordered,such as by chronologically ordering the unranked documents and orderingthe ranked documents based on content or non-chronologically.

In general, another aspect of the subject matter described in thisspecification can be embodied in methods that include the actions ofobtaining in a data processing apparatus one or more lists of documentsthat have been published in a web feed, a time that each document waspublished in the web feed, and a content-based ranking of a rankedsubset of the documents, the documents collectively including rankeddocuments, ranked documents being documents which are members of theranked subset of the documents, and unranked documents, unrankeddocuments being documents which are not members of the ranked subset ofthe documents; and providing a user interface which displays links to aplurality of the ranked documents, ordered according to thecontent-based ranking, and which simultaneously displays links to aplurality of the unranked documents, ordered chronologically based onthe time that each respective document was published in the web feed.Other embodiments of this aspect include corresponding systems,apparatus, and computer programs, configured to perform the actions ofthe methods, encoded on computer storage devices.

These and other embodiments can each optionally include one or more ofthe following features. For instance, the actions may include selecting,as the ranked subset of the documents, those documents encounteredduring a most recent check of the web feed, where obtaining thecontent-based ranking further includes storing, as the content-basedranking of the ranked subset of the documents, an editorial ranking asassigned to the ranked subset by a publisher of the web feed aspresented at the most recent check. The links to ranked documents may bedisplayed above the links to the unranked documents. Links to all of theranked documents may be displayed in the user interface, orderedaccording to the content-based ranking. Links to fewer than all of theranked documents may be displayed in the user interface, orderedaccording to the content-based ranking, and links to the unrankeddocuments may be displayed in the user interface, orderedchronologically based on the time that each respective document waspublished in the web feed.

A relevance score may be generated for each of the documents on the oneor more lists, where obtaining the content-based ranking of the rankedsubset of the documents may further include generating the content-basedranking of the documents on the one or more lists based on the relevancescores, and selecting, as the ranked subset of the documents, a top N ofthe documents from the content-based ranking of the documents, N being apositive integer. Obtaining the content-based ranking of the rankedsubset of the documents may further include generating a content-basedranking of the documents on the one or more lists based on past userinteractions with the documents, and selecting, as the ranked subset ofthe documents, a top N of the documents from the content-based rankingof the documents, N being a positive integer.

Generating the content-based ranking of the documents based on the pastuser interactions may further include generating the content basedrankings based on a quantity of recommendations or a quantity ofcomments associated with the documents by past users, or based onratings assigned to the documents by the past users. The actions mayalso include selecting, as first and second subsets of the documents,those documents encountered during a prior check and a most recent checkof the web feed, respectively, determining a first editorial ranking anda second editorial ranking as assigned to the first and second subsetsby the publisher of the web feed during the prior check and the mostrecent check of the web feed, respectively; and selecting, as the rankedsubset of the documents, those documents whose editorial rank hasincreased between the first editorial ranking and the second editorialranking, where obtaining the content-based ranking of the ranked subsetof the documents may further include assigning, as the content-basedranking of the ranked subset of the documents, a ranking based on adegree to which the editorial rank has increased between the firsteditorial ranking and the second editorial ranking.

The actions may also include determining that documents encountered in acheck of a web feed are not ranked in chronological order or reversechronological order by a publisher of the web feed; and determining thatthe web feed is an editorially ranked web feed based on determining thatthe documents encountered in the check of a web feed are not ranked inchronological order or reverse chronological order, where the userinterface which displays the links to the ranked documents and whichsimultaneously displays links to a plurality of the unranked documentsmay be provided based on determining that the web feed is an editoriallyranked web feed. The one or more lists of documents may be stored by asearch engine. The time that each document was published in the web feedmay be the time that each document was first published in the web feed.The content-based ranking may be a non-chronological ranking. The userinterface may display the links to the plurality of the rankeddocuments, ordered according to the content-based ranking, and mayseparately and simultaneously display the links to the plurality of theunranked documents, ordered chronologically based on the time that eachrespective document was published in the web feed.

In general, another aspect of the subject matter described in thisspecification can be embodied in a system that includes one or morecomputers; and a computer-readable medium coupled to the one or morecomputers having instructions stored thereon. When executed by the oneor more computers, the instructions may cause the one or more computersto perform operations including obtaining one or more lists of documentsthat have been published in a web feed, a time that each document waspublished in the web feed, and a content-based ranking of a rankedsubset of the documents, the documents collectively including rankeddocuments which are members of the ranked subset of the documents, andunranked documents which are not members of the ranked subset of thedocuments, and providing a user interface which displays links to aplurality of the ranked documents, ordered according to thecontent-based ranking, and which simultaneously displays links to aplurality of the unranked documents, ordered chronologically based onthe time that each respective document was published in the web feed.

These and other embodiments can each optionally include one or more ofthe following features. For example, the one or more computers mayinclude a client and a server, and providing the user interface mayfurther include generating, by the client, the user interface using theone or more lists of the documents obtained by the client device fromthe server, or generating, by the server, data which, when transmittedover a network and invoked by the client, causes the client to generatethe user interface, the server generating the code using the one or morelists of the documents obtained by the server, or generating, by theclient, the user interface using the one or more lists of the documentobtained by the server.

In general, another aspect of the subject matter described in thisspecification can be embodied in a computer storage medium encoded witha computer program. The program may include instructions that whenexecuted by data processing apparatus cause the data processingapparatus to perform operations including obtaining one or more lists ofdocuments that have been published in a web feed, a time that eachdocument was published in the web feed, and a content-based ranking of aranked subset of the documents, the documents collectively includingranked documents which are members of the ranked subset of thedocuments, and unranked documents which are not members of the rankedsubset of the documents; and providing a user interface which displayslinks to a plurality of the ranked documents, ordered according to thecontent-based ranking, and which simultaneously displays links to aplurality of the unranked documents, ordered chronologically based onthe time that each respective document was published in the web feed.

The details of one or more embodiments of the subject matter describedin this specification are set forth in the accompanying drawings and thedescription, below. Other features, aspects and advantages of thesubject matter will be apparent from the description and drawings, andfrom the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a contextual diagram illustrating an example ordering.

FIG. 2 is a flowchart of an example process.

FIG. 3 illustrates the published content of an exemplary web feed invarious states, and concomitant example rankings and orderings.

FIGS. 4 and 5 depict exemplary user interfaces.

FIG. 6 is a block diagram of an exemplary computing device.

Like reference numbers and designations in the various drawings indicatelike elements.

DETAILED DESCRIPTION

FIG. 1 illustrates an environment 100 in which documents or itemspublished in a web feed are displayed using the hybrid high-fidelityordering mode. The illustrated environment 100 includes a reader 102 anda feed publisher site 104. The reader 102 may be implemented on a clientdevice or system, such as a laptop or desktop personal computer,personal digital assistant (PDA), or mobile phone. Alternatively, thereader 102 may be implemented on a server (such as a search engine) thatgenerates code which, when transmitted over a network and invoked by aclient, causes the client to generate a user interface which displayslinks to documents using the hybrid high-fidelity ordering mode. Theenvironment 100 may be used, for example, to obtain one or more rankedor unranked lists of documents 106 that have been published in one ormore web feeds, such as by the feed publisher site 104.

In FIG. 1, when the reader 102 checks a web feed published by the feedpublisher site 104, the reader 102 may obtain, among other things, thecontent of (or a link to) each document, a time that each document waspublished or received (illustrated as times t₀, t₁, t₂, etc.), as wellas the respective position within the web feed that each document waspublished. Timestamps may identify a date (e.g., year, month, day)and/or an absolute or relative time (e.g., hour, minute, second,fraction of a second, etc.) that each document was published orreceived.

When a document, or a link to a document, has been downloaded by thereader 102 and has been added to a published items database 114, linksto the published documents may be ordered and displayed by the feedreader 102 using a variety of different approaches, including hybridhigh-fidelity ordering. For instance, all documents on the list maysimply be ordered chronologically based upon their associatedpublication or receipt timestamps, such that one or more of the mostrecent or oldest documents are displayed by the feed reader, or areprovided by the feed reader for display on a client. Since chronologicalordering is based upon the timestamp associated with each document andis not based on the content of the document identified by the feedpublisher site 104, older documents which remain relevant or importantmay not be displayed in a chronologically ordered list.

This specification also describes techniques relating to ‘editorialordering,’ which is intended to describe ordering of the documents basedupon a ranking that is explicitly assigned to the documents by the feedpublisher site 104. Editorial ordering is also referred to as ‘publisherprovided ordering,’ and differs from other types of content-basedordering, which may be derived from relevance rankings provided by otherreaders or third parties, such as search engines, based on popularity.The techniques relating to editorial ordering do not require theinvolvement of a search engine.

At a given point in time, the feed publisher site 104 may publish alimited number of documents (e.g., 10 to 25), where each document isassigned a particular position or ‘slot’ within a web feed, based uponits relative priority. Technically, the web feed published by the feedpublisher site 104 may actually be a structured list of documents andassociated metadata, which is read periodically by the reader 102. Assuch, the a particular ‘slot’ of a document within a web feed may bedetermined based upon determining the position of a reference to thedocument within this structured list.

While many feed publication sites may use a first-in-first-out positionassignment approach, where the oldest document in the current feed getsbumped from the last position of the web feed by the newest documentbeing inserted into the first position of the web feed, other feedpublication sites assign these web feed positions based on a priority ofeach document relative to the other documents in the web feed.Regardless of which approach the feed publisher site 104 uses, thereader 102 stores references to items which are no longer part of thefeed (i.e., the unranked documents), as well as references to itemswhich are currently still part of the feed (i.e., the ranked documents).

For instance, recalling that a publisher of web feed (e.g., Atom feed,Really Simple Syndication (RSS) feed, or feed in any other syndicationformat) limits the number of documents in their feed, the publisher mayinsert a recent document containing a low priority story into the lastposition of the web feed, instead of the first position. Conversely, thepublisher may move an older document containing a story which hasincreased in relevance from the last position of the web feed to thefirst position of the web feed, instead of being displaced when a newstory is inserted into the first or other position of the web feed. Theposition of each document within the web feed may thus be expressive ofthe priority that the operator of the feed publisher site 104 hassubjectively assigned to the content of each document when placing itinto the web feed.

When a feed reader downloads or checks the contents of a web feed, thefeed reader may determine whether the feed publisher site 104 hasapplied an editorial ordering to the documents within the feed, orwhether the documents are ordered chronologically by the feed publishersite 104. Specifically if, upon referencing the timestamps of eachdocument, the reader 102 determines that the documents as positioned bythe feed publisher site 104 are in chronological order, the reader 102may assume that the feed publisher site 104 is positioning the documentsin the web feed using chronological ordering or editorial ordering.Alternatively, if, upon referencing the timestamps of each document, thereader 102 determines that the documents as positioned by the feedpublisher site 104 are not in chronological order, the reader 102 mayassume that the feed publisher site 104 is positioning the documentsusing editorial ordering or content based ordering, and notchronological ordering. The feed reader may rank each document accordingto its respective position within the web feed (or ‘editorial rank’),based on the assumption that this editorial rank is a subjectivelyassigned indicia of importance or priority of the documents.

In addition to displaying the documents in chronological order, thereader 102 may also order the documents on the user interface in apriority which corresponds to their editorial rank. In thehigh-fidelity′ ordering mode, editorially ranked documents are orderedby the feed reader based on their position within the web feed aspresented at the time of the last check. Since an editorially ranked webfeed may continue to publish old stories for long periods of time or mayquickly bump an unimportant new document from the web feed, achronological listing of editorially ranked documents may be lessrelevant or valuable to the user than a high-fidelity ordering modelisting which reflects the prioritization of each document as assignedby the feed publisher site 104.

The documents that have been published in the web feed, includingdocuments that are no longer being published, may include rankeddocuments and unranked documents. The ranked documents include thosewhich are currently being published, and which may be ranked based ontheir content or merit. The unranked documents include those which werepreviously published but are no longer being published. In the hybridhigh-fidelity ordering mode, the feed reader simultaneously displayslinks to one or more of the ranked documents in one region of the userinterface, and links to one or more of the unranked documents inanother, different region of the user interface. The links to theunranked documents may be ordered for display on the user interface in adifferent manner than links to the ranked documents are ordered.

Such a hybrid high-fidelity ordering mode may combine a historical orchronological display of certain documents from the web feed with aneditorial ranking of other documents, providing benefits and advantagesassociated with each separate ordering approach for separate subsets ofthe documents. For example, one displayed subset of documents may beranked based on relevance or content. Relevance based rankings mayinclude publisher-provided rankings (i.e., editorial ordering), or othertypes of content-based ordering, such as reader-derived or searchengine-derived relevance rankings. Ranking based on content or relevanceis one type of non-chronological ranking, although other types ofnon-chronological rankings, such as random rankings, alphabeticalrankings, or rankings by category or topic are also possible, with orwithout the involvement of a search engine.

Another subset of the documents may be displayed based on theirchronological ranking, providing a historical log of documents whichwere published in the past but which are no longer considered mostrelevant by the feed publisher site 104 or by other readers or thirdparties, due to their low popularity. In this way, a user may easilynavigate among the highest content-ranked documents, while still havingaccess previously published documents regardless of their respectivecontent-based ranking, and despite the fact that the previouslypublished documents are no longer published.

The reader 102 and/or the feed publisher site 104 may store the historyof the feed chronologically, adding new documents to the database ofpublished documents as they are checked by the reader 102, and may alsostore the position of the documents within the feed at the time of thelast check and/or previous checks. When documents from a web feed aredisplayed by the reader 102, some subset of those documents which have ahigh-fidelity ranking are displayed in their assigned order, and somesubset of those documents which do not have a high-fidelity ranking aredisplayed in chronological order.

The reader 102 maintains a database which stores a content-based ranking(i.e. editorial ranking or relevance ranking) of the subset of thedocuments which are assigned a rank. The ranking may be based upon aneditorial ranking of the documents, as assigned by an operator of thefeed publisher site 104, or the ranking may be determined and assignedby the reader 102 itself or by another other entity, such as a searchengine associated with the reader 102. The reader 102 may store orotherwise access various information about the documents, includinginformation identifying documents which are members of the ranked subsetof the documents and documents which are not members of the rankedsubset, the order of the documents within the ranked subset, and thepublisher's timestamp associated with the documents which are notmembers of the ranked subset. The timestamp may represent the time thatthe document was inserted into the web feed by the operator of the feedpublisher site 104 or was last updated by the feed publisher site 104,or it may represent the first time that the document was seen by thereader 102 within the web feed.

A computer network 105, such as a local area network (LAN), wide areanetwork (WAN), the Internet, or a combination thereof, communicativelyconnects the reader 102 and the feed publisher site 104. For example,through the network 105, the feed publisher site 104 provides the reader102 with information, including lists of or references to publisheddocuments. When the reader 102 is implemented as a server, the network105 may communicate with a client device over the computer network 105as well.

Web feed tables 108 a through 108 h illustrate the relative positions ofthe documents within the web feed, as they are positioned and publishedby the feed publisher site 104 at times t₀ through t₇, respectively. Asillustrated, the rows of the tables 108 identify a document and the timethat each respective document was published in a web feed by the feedpublisher site 104, or downloaded by the reader 102. The rows of eachrepresentative table 108 are ordered according to the ranking assignedto each document by the feed publisher site 104 (or the operator of thefeed publisher). Where a document name is supplied (e.g., ITEM A, ITEMB, etc.) in a particular web feed table 108, the document name refers orlinks to a specific published document 106.

Web feed table 108 a, for example, lists the order of documents storedby the reader 102 at time t₀, as ranked by the feed publisher site 104.Specifically, ITEM A 109 a is ordered in the highest priority positionof the web feed table 108 a, since ITEM A 109 a is, at time t₀, the onlydocument that is published by the feed reader 104. ITEM B 109 b refersto a document that was published at time t₁ , ITEM C 109 c refers to adocument that was published at time t₂ , ITEM D refers to a documentthat was published at time t₃ , ITEM E refers to a document that waspublished at time t₄ , ITEM F refers to a document that was published attime t₅ , ITEM G refers to a document that was published at time t₆, andITEM H refers to a document that was published at time t₇.

Thus, the web feed tables 108 a through 108 h appear clockwise inchronological order corresponding to publication times t₀ (for the webfeed table 108 a) through t₇ (for the web feed table 108 h). The timest₀ through t₇ represent web feed publication times of documents 109identified in the web feed tables 108, as updated by the feed publishersite 104 over time. The interval between these illustrated times (i.e.(t_(n+1))−(t_(n))) may represent a uniform or non-uniform time interval.

The reader 102 includes a user interface 110 which displays links to atleast a portion of the documents 106. A subset of the documents 106which are ranked may be ordered sequentially according to theirrespective content-based rank, such as by using the editorial rankingsassigned by the feed publisher site 104. Simultaneously, the userinterface 110 may separately display links to the unranked documents,which may be ordered chronologically based on the time that eachrespective document was published in a particular web feed.

The links to the ranked documents may be displayed separately from thelinks to the unranked documents, or the links may be displayed together.When the links are displayed separately, they may be displayed inseparate windows or the same window, they may or may not have a dividingelement or border separating them, and they may or may not be displayedone-above-another or side-by-side. When the links are displayedtogether, they may be displayed in a single list, without interspersingthe links to the ranked documents among the links to the unrankeddocuments, or vice versa.

The current position of the published documents 106 within the web feedare reflected in the web feed table 108 associated with the time thatthe web feed was last visited by the reader 102. For example, the webfeed table 108 a represents an initial ordering of the publisheddocuments 106 within the web feed, showing ITEM A 109 a in the highestpriority position at t₀, with no other documents within the web feed.The web feed table 108 b represents a subsequent ordering of thedocuments 106 at a later time (t₁) after ITEM B 109 b has been insertedinto the highest priority position of the web feed and published, asreflected by the positioning of ITEM B 109 b in the web feed table 108b.

As such, the ITEM B 109 b appears as a higher-ranked entry in the webfeed table 108 b than does the ITEM A 109 a. The higher ranking may bethe result of a news editor making a decision that the news informationassociated with ITEM B 109 b is more newsworthy than that of the ITEM A109 a, or based upon a module of the feed publisher site 104automatically determining that ITEM B 109 b has received more commentsthan ITEM A 109 a. As reflected in the table 108 h associated with timet₇, as time elapses in this example, the items increasingly appear to bepositioned out of chronological order by the feed publisher site 104.

The web feed tables 108 c through 108 h reflect the position of thepublished documents 106 within the web feed at times t₂ through t₇,respectively. For instance, the web feed table 108 c includes a new ITEMC 109 c inserted into the highest priority position of the web feed andpublished at time t₂; the web feed table 108 d includes a new ITEM D 109d inserted into the highest priority position of the web feed andpublished at time t₃, as well as a re-positioning (or re-prioritization)of ITEM A 109 a from the lowest priority position to the second highestpriority position; and the web feed table 108 e includes a new ITEM E109 e inserted into the second highest priority position an published attime t₄, as well as a re-positioning (or re-prioritization) of ITEM A109 a from the third highest priority position to the second highestpriority position.

As shown by reference 112 a, the reader 102 submits a subscriptionrequest to the feed publisher site 104 to subscribe to the web feed.This subscription, including, for example, user authenticationinformation, may be stored by a subscription manager of the feedpublisher site 104 and/or the reader 102. Once the reader 102 subscribesto the web feed, and as shown by reference 112 b, new documents (orlinks to the new documents) are published when the reader 102 checks theweb feed. From the point-of-view of the reader 102, the reader 102determines that a new document is published when the new documentappears in the feed that it is currently reading, although thepublication timestamp of the new document may indicate a time earlierthan when the reader 102 checked the feed publisher site 104. Thus,‘checking’ the web feed occurs when the reader 102 periodically queriesthe feed publisher site 104 to determine whether new content has beenpublished and, when it has, by downloading the new content to the reader102. When published, one or more of published documents 106 are storedin a published items database 114 of the reader 102, in association withone or more old documents that are no longer published within the webfeed.

As shown in table 124 g, for example, the published items database 114stores a list of the documents that the reader 102 has obtained from theweb feed from time t₀ to time t₆, (specifically, ITEM A through ITEM G),and the publication or receipt timestamp associated with each obtaineddocument. The information stored in table 124 g includes references toall of the documents published in the web feed at time t₆ (specifically,ITEMS A, E, D, C, and G, as is also reflected in table 108 g), as wellas those items which were published in the web feed at time t₀ throughtime t₅ but which, for various reasons, were no longer being publishedin the web feed at time t₆ (specifically, ITEM B, published at time t₁and removed at time t₅, and ITEM F, published at time t₅ and removed attime t₆). This information may be stored chronologically ornon-chronologically within the table 124 g.

In another example, and as shown in table 124 h, the published itemsdatabase 114 stores a list of the documents that the reader 102 hasobtained from the web feed from time t₀ to time t₇, (specifically, ITEMA through ITEM H), and the publication or receipt timestamp associatedwith each obtained document. The information stored in table 124 hincludes links to all of the documents published in the web feed at timet₇ (specifically, ITEMS G, A, H, E, and D, as reflected in table 108 h),as well as those items which were published in the web feed at time t₀through time t₆ but which, for various reasons, were no longer beingpublished in the web feed at time t₇(specifically, ITEM B, published attime t₁ and removed at time t₅ ; ITEM F, published at time t₅ andremoved at time t₆; and ITEM C, published at time t₂ and removed at timet₇). This information may be stored chronologically ornon-chronologically within the table 124 h.

The reader 102 also includes a ranking database 116 which stores currentand/or past rankings of the documents that have been published by thefeed reader 104. For instance, the ranking database 116 may include oneor more tables which store the editorial ranking (or anothercontent-based ranking) as assigned to the documents by the feedpublisher site 104 at the time of the latest check, or at the time ofprior checks.

Where the rankings are not explicitly provided in the web feed, theranking database 116 may receive these rankings from a ranking generatorwhich automatically generates the rankings based on information derivedfrom the feed publisher site 104, the user or other past users, or otherapplications. The ranking generator may, for example, generate a rankingbased upon ratings or comments applied to the documents by other pastusers in the past, and may filtering out ratings or comments that theranking generator determines may be an undesired or unsolicited bulkmessage (‘spam’).

As shown in table 128 g, for example, the ranking database 116 stores atable or list, representing a ‘snapshot’ of the documents that thereader 102 has obtained from the web feed at time t₆, as ranked by thefeed publisher site 104 at time t₆. Notably, the content of this table128 g (specifically, ITEMS A, E, D, C, and G, in order) matches thecontent of the table 108 g (also ITEMS A, E, D, C, and G, in order),which reflects the positions of the documents within the web feed asassigned by the feed publisher site 104, and as read by the reader, attime t₆. In this example, the table 128 g does not list any documentwhich is not published by the feed publisher site 104, and as read bythe reader, at time t₆ (such as ITEMS B, F, and H), since it is impliedthat these documents are no longer considered important or relevant bythe feed publisher site 104, and they therefore no longer need to beprominently displayed through the user interface 110.

Although table 108 g and table 128 g (and, similarly, table 108 h andtable 128 h) appear to be identical in FIG. 1, table 108 g actuallyrepresents the structured document and associated metadata which is readperiodically by the reader 102, while table 128 g is an example of thetable stored in the ranking database 116, representing a snapshot of theranking received from the feed publisher site 104 at time t₆. Otherranking tables may also be stored in the ranking database 116. Theseother ranking tables may be copies of information which is received fromthe feed publisher site 104, or they may store rankings that aregenerated (by the reader 102 or by third parties) based on an analysisof the content of the published items stored in the published itemsdatabase 114.

In another example, and as shown in table 128 h, the ranking database116 stores a table or list of the documents that the feed reader 102 hasobtained from the web feed at time t₇, as ranked by the feed publishersite 104 at time t₇. Notably, the content of this table 128 h(specifically, ITEMS G, A, H, E and D, in order) matches the content ofthe table 108 h (specifically, ITEMS G, A, H, E and D, in order), whichreflects the positions of the documents within the web feed as assignedby the feed publisher site 104 at time t₇. In this example, the table128 h does not list any document which is not published by the feedpublisher site 104 at time t₇ (such as ITEMS B, C, and F), since it isimplied that these documents are no longer considered important orrelevant by the feed publisher site 104, and they therefore no longerneed to be prominently displayed through the user interface 110.

Alternatively, in some implementations the functionality of thepublished items database 114 and the ranking database 116 is combined,the feed reader 102 may store a single list or table which referencesall items that have been published within the web feed and received bythe feed reader 102 through the last check, a timestamp for these itemsand, for those items which were published in the web feed as presentedat the time of the last check (i.e., the ‘ranked documents’), theposition of those documents within the web feed. At the time of a newcheck of the web feed, the tables or lists stored in the published itemsdatabase 114 and/or the ranking database 116 may be updated by adding anew table associated with the latest check time and by archiving ordeleting prior tables, or they may be updated by revising a prior tableor list with the most recent information. Accordingly, as a significantamount of time elapses, the ranking database 116 may include one list ortable which includes the most current ranking information, or it mayinclude many tables, only one of which includes the most current rankinginformation.

The reader 102 may use information associated with the documents in thepublished items database 114, such as timestamp information, and storedrankings for the documents from the ranking database 116 to determine apresentation order for the documents, and may present the documents inthe determined order using the user interface 110. When hybridhigh-fidelity ordering is used, the user interface 110 includes a topstories area 118 which displays one or more of the ranked documentsaccording to their editorial ranking, and a history area 120 whichdisplays one or more of the unranked documents according to achronological or reverse chronological order. In this manner, the userof the user interface 110 may view certain highly ranked documents, aswell as older documents which might be relevant to the user but whichare no longer published in the feed. Although the two separate areas arereferred to in this example as a ‘top stories’ area and a ‘history’area, in other implementations the separate areas may be referred todifferently.

The top stories area 118 and the history area 120 may be separated by adividing element (referred to as the ‘fold’) 130. In the example userinterface 110, the links to ranked documents (e.g., in the top storiesarea 118) are displayed above the links to the unranked documents (e.g.,in the history area 120), and are separated by a horizontal fold 130. Inother implementations, the links may appear in other orders or indifferent visual arrangements (e.g., side-by-side with a vertical fold,etc.). In other implementations, no dividing element is used and, fromthe perspective of the user, the links to the ranked documents areindistinguishable from the links to the unranked documents.

By manipulating the position of the fold 130 on the user interface, theuser may control the quantity of ranked documents and unranked documentsto display. If, through the manipulation of the fold 130, a rankeddocument is removed from the top stories area 118, it may be displayedor animated to appear among the chronologically ordered documents in thehistory area 120 based upon its timestamp.

The ranking of the documents 106 within the web feed during the mostrecent check and the ranking of the documents 106 within the web feedduring a prior web check may both be stored by the ranking database 116in one or more tables or lists. By comparing both rankings, the reader102 may identify new documents which were added to the web feed sincethe prior check, removed documents that were removed from the web feedsince the prior check, and upward-moving and downward-moving documentswhose relative position (and corresponding implicit priority) within theweb feed increased or decreased since the prior check, respectively.

The reader 102 may display fewer than all of the ranked documents orfewer than all of the unranked documents in the user interface 110. Thequantity of ranked or unranked documents to display may bepredetermined, may be user selectable, or may be determined based uponthe content of the documents within the web feed. For instance, bymanipulating the position of the fold 130 on the user interface (e.g.,by selecting and dragging the fold 130 with a mouse cursor), the usermay control the number of ranked documents and unranked documents todisplay.

Furthermore, in selecting the subset of the ranked to display in topstories area 118 of the user interface 110, the reader 102 may consideror select all or some of the new documents, removed documents, or theupward-moving or down-moving documents. For upward-moving ordownward-moving documents, the reader 102 may select documents fordisplay above or below the fold 130 based upon the degree to which theymoved upward or downward. For instance, the reader 102 may select adocument for display above the fold if it moved upward more than apredetermined number or percentage of positions within the web feed, butmay not display that same document above the fold if it moved fewer thanthe predetermined number or percentage of positions. Taking this exampleone step further, the reader 102 may display the one document which hasincreased most in rank between the prior check and the most recent checkabove the fold, and may display all other documents in chronologicalorder below the fold.

Although hybrid high-fidelity ordering may be used in each case, theselection of different subsets of ranked and unranked documents maydramatically alter the substance and general visual appearance orarrangement of the user interface 110. In addition to ‘generic’ hybridhigh-fidelity ordering, the feed reader interface may provide a varietyof discrete, separately selectable hybrid high-fidelity ordering modesthat each use different subsets of ranked and unranked documents.

In some implementations, additional interface controls or elements maybe displayed on the user interface 110 to allow the user to control theformatting and content of the display. For example, the user may use aninterface control to switch display modes among, for example, achronological ordering mode, a high fidelity ordering mode, or anynumber of hybrid high-fidelity ordering sub-modes. If the high fidelityordering mode or the hybrid high-fidelity ordering mode are selected,the user may use the interface control to alter the basis for thecontent ranking, for example to indicate whether the documents should beranked according to their editorial order, according to the quantity ofcomments received, according to the collective ranking, or according toother merit-based factors.

The user may also use an interface control to change a location of thefold 130, which may similarly alter the number of ranked documents orunranked documents, or the ratio of ranked documents to unrankeddocuments, to display on the user interface 110. The user interface 110may include other controls 122 (e.g., search boxes and other fields andcontrols) or other areas for displaying additional web feed information.

The reader 102 may use the information stored in the published itemsdatabase 114 and the ranking database 116 to identify which documents todisplay in the user interface 110, and to select the presentation orderof these identified documents. For example, the reader 102 may selectone or more of the documents stored in the most recently updated tableof the ranking database 116 (i.e. one or more of the ranked documents),and may display these ranked documents in the top stories area 118 ofthe user interface 110. Further, the reader 102 may select one or moreof the documents stored in the most recently updated table of thepublished items database 114 which are not included in the most recentlyupdated table of the ranking database 116 (i.e., one or more of theunranked documents), may order these unranked documents chronologically,and may display these unranked documents in the history area 120 of theuser interface 110.

In some implementations, the chronological list of documents displayedin the history area 120 may also include documents that are also listedin the top stories area 118 (i.e., the ranked documents). In this case,the duplicated documents may be highlighted or otherwise speciallymarked, such as by using a different font or color, or by adding aspecial symbol adjacent to the link to the document. In otherimplementations, the duplicate documents are removed, so that thechronological list displays a single version or instance of thedocument.

The reader 102 is invoked using a system which may include one or moreprocessors, input and output devices, network interfaces, andcomputer-readable storage mediums. The reader 102 may be invoked aclient device, such as a desktop personal computer, which invokes a feedreader application which itself checks web feeds, stores lists ofdocuments published in the web feeds, selects documents for display,orders the documents for presentation, and displays links to a pluralityof the ordered documents. Alternatively, the reader 102 may be invokedon a combination of a client device and a server device, where theserver device checks web feeds, stores lists of documents published inthe web feeds, selects documents for display, orders the documents forpresentation.

Furthermore, and among other applications stored on the one or moremedia, the reader 102 may include a web feed reader application whichmanages web feed subscriptions, performs checks of web feeds, and ordersdocuments for presentation through the user interface 110; an internetbrowser application; a search engine application; and a comment orrating application which allows users to comment on or rate documents,and which filters out those comments or ratings that are determined tobe likely spam.

FIG. 2 is a flowchart of an example process 200 for obtaining anddisplaying web feed documents in a hybrid high-fidelity ordering mode.The example process 200 may be used, for example, to display web feeddocuments used in the environment 100 described with respect to FIG. 1.The example process 200 may be implemented using one or more readers 102and one or more feed publishers 104.

One or more lists of documents that have been published in a web feedare obtained (202), for example by a search engine. Also obtained is atime that each document was published in the web feed or checked by thefeed reader, and a content-based ranking of a ranked subset of thedocuments. The documents collectively include ranked documents which aremembers of the ranked subset of the documents, and unranked documentswhich are not members of the ranked subset of the documents.

The ranked subset of the documents may include editorially rankeddocuments which were encountered by the feed reader during a most recentcheck, where the editorial ranking is stored as the content-basedranking of the documents. A relevance score may be generated for each ofthe documents on the one or more lists, where the content-based rankingmay be generated based on the relevance scores. The relevance score maybe based upon past interactions with the documents by other users inpast sessions, where the interactions may include a quantity ofrecommendations or a quantity of comments associated with the documentsby past users, or ratings assigned to the documents by the past users.

The editorial ranking of those documents encountered during a priorcheck, and during a most recent check of the web feed, may beidentified, where the content-based rank may be assigned to eachdocument based upon an extent to which each document increased ineditorial rank between the prior check and the most recent check.Depending upon whether the document encountered in a check of the webfeed are ranked in chronological order by the publisher of the web feed,the feed reader may determine that the web feed is an editorially rankedweb feed or not an editorially ranked web feed, and may order the rankeddocuments for display accordingly.

A user interface is provided which displays links to a plurality of theranked documents (204). The documents are ordered according to thecontent-based ranking, and which simultaneously displays links to aplurality of the unranked documents, ordered chronologically based onthe time that each respective document was published in the web feed.

The links to some or all of the ranked documents may be displayed abovethe links to the unranked documents, where the ranked documents areordered according to the content-based ranking. Links to the unrankeddocuments may be displayed in the user interface, orderedchronologically based on the time that each respective document waspublished in the web feed.

FIG. 3 illustrates the published content of an exemplary web feed invarious states, and concomitant example rankings and orderings.Specifically, and similar to web feed tables 108 a to 108 h, the table302 illustrates the position of various documents in an exemplary webfeed at times t₀ to t₇. As shown in column 302 a, for example, ITEM A isordered in the highest priority position of the web feed, since ITEM Ais, at time t₀, the only document that is published in the web feed.Column 302 c shows that ITEM C was published at time t₂. For theexemplary web feed illustrated in table 302, the table 304 illustrates ahistorical list of unranked documents that were published in the webfeed in the past, but which are no longer published or ranked.

Tables 306, 308, 310 and 312 are data tables stored by the feed readerat time t₇, reflecting the state of the exemplary web feed at time t₇.Table A 306, which is similar to table 124 h, is stored in the publisheditems database of the feed reader, and lists the documents that the feedreader has obtained from the web feed from time t₀ to time t₇. Table B308, which is similar to table 128 h, is stored in the ranking databaseof the feed reader, and lists the documents that the feed reader hasobtained from the web feed at time t₇, as ranked by the feed publisherat time t₇.

Tables 310 and 312 are exemplary tables generated by a ranking generatorof the feed reader based in part on past session data of other users.For instance, Table C 310 stores an example user rating-based ranking ofthe documents. For example, the user ratings shown in the table are‘stars’ which may correspond to star or popularity ratings entered bypast users, and processed by the ranking generator to remove false orspammy entries.

In this example, ITEM G is rated as having 5.0 stars, and is ranked intable C 310 higher than the next ITEM B which is rating as having 4.3stars. ITEM F, which has no stars, is ranked in the lowest priorityposition of the table C 310. The ratings may be collected from otherusers of the documents over time, and the stored rating may represent anaverage or median rating of some or all of the users who have rated adocument. Table D 312 stores an example comment quantity-based rankingof the documents. In Table D 312, for example, ITEM F is ranked in thehighest priority position since it has the most number of comments.

The information in tables 306 and 308 is determined based on thepublication history of the exemplary web feed, as shown in tables 302and 304, and the information in tables 310 and 312 is determined by aranking generator which collects data from sources other than the feedpublisher. Using this information in these tables, the feed publishermay present the documents in a variety or orders, as shown in tables 314to 326.

Table 314 presents the published documents in reverse chronologicalorder, with the most recently published document (ITEM H) displayed atthe top, and the oldest document (ITEM A) displayed at the bottom. Auser who views the documents in this order will be assured of seeing themost recently published documents, however, there is no assurance thatthe displayed documents will be those which are most relevant, or thatthe most relevant stories will be set apart from the less relevantdocuments. Since Table A 306 stores the published articles inchronological order, the feed reader may present the documents to theuser in chronological order by outputting them as they are alreadyordered in Table A 306.

Table 316 presents the published documents in high-fidelity orderingmode, ordered according to editorial priority. A user who views thedocuments in this order will be assured of seeing the most relevantdocuments (as determined by the feed publisher), however the user is notable to view older stories which are relevant to the user but not thefeed publisher. Since Table B 308 stores the currently publisheddocuments in their editorial order, the feed reader may present thedocuments to the user in editorial order by outputting them as they arealready ordered in Table B 308.

Table 318 presents the published documents in a first hybridhigh-fidelity ordering mode, in which all ranked documents are displayedabove a fold, and the remaining unranked documents are displayed belowthe fold. A user who views the documents in this order will see the mostrelevant documents (as determined by the feed publisher) first, followedby previously published, but presently unranked documents that may berelevant to the user but not the feed publisher. The feed reader maypresent the documents to the user in this first hybrid high-fidelityordering mode by outputting references to the documents listed in TableB 308, in sequence, followed by outputting, in reverse chronologicalorder, references to the documents listed in Table A 306 which are notlisted in Table B 308.

Table 320 presents the published documents in a second hybridhigh-fidelity ordering mode, in which the top two ranked documents aredisplayed above a fold, and the remaining published documents aredisplayed below the fold. A user who views the documents in this orderwill see some of the most relevant documents first, followed by otherdocuments which may be of interest to the user and the feed publisher.The feed reader may present the documents to the user in this secondhybrid high-fidelity ordering mode by outputting references to the firsttwo documents listed in Table B 308, in sequence, followed byoutputting, in reverse chronological order, references to the documentslisted in Table A 306 and those documents which are not in the top twopositions of Table B 308. While, in this example, references to tworanked documents are output above the fold, in other examples referencesto any positive number of ranked documents can be displayed.

Table 322 presents the published documents in a third hybridhigh-fidelity ordering mode, in which the most upward-moving documentsis displayed above a fold, and the remaining published documents aredisplayed below the fold. A user who views the documents in this orderwill see the documents which is most increasing in relevance first,followed by other documents which may also be of interest to the userand the feed publisher. The feed reader may present the documents to theuser in this third hybrid high-fidelity ordering mode by selecting themost upward-moving document from Table B 308 using the techniquesdescribed above, and outputting a reference to this document above thefold. Additionally, the feed reader will output, in reversechronological order, references to the documents listed in Table A 306and those documents of Table B 308 which were not selected. While, inthis example, a reference to the single, most upward-moving rankeddocument is output above the fold, in other examples references to anypositive number of upward-moving documents can be displayed.

Tables 324 and 326 present the published documents in fourth and fifthhybrid high-fidelity ordering modes, respectively, in which the top fivehighest rated and most commented upon (by past users) documents aredisplayed above a fold, and the remaining published documents aredisplayed below the fold. A user who views the documents in this orderwill see some of the most relevant documents first, as determined bypast users and based on two different criteria, followed by otherdocuments which may be of interest to the user and the past users. Thefeed reader may present the documents to the user in the fourth andfifth hybrid high-fidelity ordering modes by outputting references tothe first five documents listed in Table C 310 or Table D 312, insequence, followed by outputting, in reverse chronological order,references to the documents listed in Table A 306 and those documentswhich are not in the top five positions of Table C 310 or Table D 312,respectively. While, in these examples, references to five rankeddocuments are output above the fold, in other examples references to anypositive number of ranked documents can be displayed.

FIGS. 4 and 5 show example user interfaces for displaying links todocuments using the first hybrid high-fidelity ordering mode (Table 318)and fourth hybrid high-fidelity ordering mode (Table 324). Userinterfaces 400 and 500 of FIGS. 4 and 5, respectively, may be displayedon the user's personal computer, smart phone, mobile Internet device, orany other electronic device capable of receiving and displaying webcontent, including documents from web feeds.

In FIG. 4, the user interface 400 is divided into several areas,including a documents area which displays links 404 to documents thathave been published in a web feed. Above the fold 408, the userinterface 400 outputs links to the documents that the feed reader hasobtained from the web feed at time t₇, as ranked by the feed publisherat time t₇ (specifically, ITEMS G 404 g , ITEM A 404 a , ITEM H 404 h ,ITEM E 404 e, and ITEM D 404 d, in sequence). Below the fold 408, theuser interface outputs links to the documents that the feed reader hasobtained from the web feed from time t₀ to time t₇ which were no longerbeing published in the web feed at time t₇ (specifically, ITEM B 404 b ;ITEM F 404 f; and ITEM C 404 c), listed in reverse chronological order.In another implementation, the fold 408 is not displayed, such that aviewer of the user interface cannot visually distinguish between thelinks to the documents that are currently being published in the webfeed, and the links to the documents that are no longer being publishedin the web feed.

The user interface 400 may also display one or more mode selection links410, to allow a user to select or switch between a hybrid high-fidelityordering mode, chronological ordering mode, popularity ordering mode,high-fidelity ordering mode, or other modes. For example, byhighlighting link 410 a, the user interface 400 indicates that the links404 are being displayed in hybrid high-fidelity ordering mode

The quantity of content-based documents displayed at any particular timemay be user selectable. For example, the user may use a text entry fieldor a slider control adjust the number of ranked documents or unrankeddocuments to display. In other implementations, the user may use acontrol 412 to adjust the position of the fold 408 and, similarly, thequantity of ranked and unranked documents to display. When a link 404 isselected, the document may be displayed in a separate pop-up window, orin a separate display area in the current window

As shown in FIG. 5 the links to the documents are displayed in the userinterface 500 using the fourth hybrid high-fidelity ordering mode, afterthe user selects the “popularity” mode selection link 410 c. Above thefold 408, the user interface 500 outputs links to the top five highestrated documents, as determined by a ranking generator based on inputsfrom other users in the past. The remaining published documents aredisplayed below the fold 408. The feed reader presents the documents tothe user in the fourth hybrid high-fidelity ordering mode by outputtingreferences to the first five documents listed in a user rating-basedranking of the documents (specifically, ITEMS G 404 g , ITEM B 404 b ,ITEM H 404 h , ITEM D 404 d, and ITEM A 404 d, in sequence), followed byoutputting, in reverse chronological order, references to the documentsthat the feed reader has obtained from the web feed from time t₀ to timet_(7 which are not in the top five positions of the user rating-based ranking of the documents (specifically,)ITEM F 404 f ; ITEM E 404 e; and ITEM C 404 c).

FIG. 6 is a block diagram of computing devices 600, 650 that may be usedto implement the systems and methods described in this document, aseither a client or as a server or plurality of servers. Computing device600 is intended to represent various forms of digital computers, such aslaptops, desktops, workstations, personal digital assistants, servers,blade servers, mainframes, and other appropriate computers. Computingdevice 650 is intended to represent various forms of mobile devices,such as personal digital assistants, cellular telephones, smartphones,and other similar computing devices. The components shown here, theirconnections and relationships, and their functions, are meant to beexemplary only, and are not meant to limit implementations of theinventions described and/or claimed in this document.

Computing device 600 includes a processor 602, memory 604, a storagedevice 606, a high-speed interface 608 connecting to memory 604 andhigh-speed expansion ports 610, and a low speed interface 612 connectingto low speed bus 614 and storage device 606. Each of the components 602,604, 606, 608, 610, and 612, are interconnected using various busses,and may be mounted on a common motherboard or in other manners asappropriate. The processor 602 may process instructions for executionwithin the computing device 600, including instructions stored in thememory 604 or on the storage device 606 to display graphical informationfor a GUI on an external input/output device, such as display 616coupled to high speed interface 608. In other implementations, multipleprocessors and/or multiple buses may be used, as appropriate, along withmultiple memories and types of memory. Also, multiple computing devices600 may be connected, with each device providing portions of thenecessary operations (e.g., as a server bank, a group of blade servers,or a multi-processor system).

The memory 604 stores information within the computing device 600. Inone implementation, the memory 604 is a computer-readable medium. In oneimplementation, the memory 604 is a volatile memory unit or units. Inanother implementation, the memory 604 is a non-volatile memory unit orunits.

The storage device 606 is capable of providing mass storage for thecomputing device 600. In one implementation, the storage device 606 is acomputer-readable medium. In various different implementations, thestorage device 606 may be a floppy disk device, a hard disk device, anoptical disk device, or a tape device, a flash memory or other similarsolid state memory device, or an array of devices, including devices ina storage area network or other configurations. In one implementation, acomputer program product is tangibly embodied in an information carrier.The computer program product contains instructions that, when executed,perform one or more methods, such as those described above. Theinformation carrier is a computer- or machine-readable medium, such asthe memory 604, the storage device 606, or a memory on processor 602.

The high speed controller 608 manages bandwidth-intensive operations forthe computing device 600, while the low speed controller 612 manageslower bandwidth-intensive operations. Such allocation of duties isexemplary only. In one implementation, the high-speed controller 608 iscoupled to memory 604, display 616 (e.g., through a graphics processoror accelerator), and to high-speed expansion ports 610, which may acceptvarious expansion cards (not shown). In the implementation, low-speedcontroller 612 is coupled to storage device 606 and low-speed expansionport 614. The low-speed expansion port, which may include variouscommunication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet)may be coupled to one or more input/output devices, such as a keyboard,a pointing device, a scanner, or a networking device such as a switch orrouter, e.g., through a network adapter.

The computing device 600 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as astandard server 620, or multiple times in a group of such servers. Itmay also be implemented as part of a rack server system 624. Inaddition, it may be implemented in a personal computer such as a laptopcomputer 622. Alternatively, components from computing device 600 may becombined with other components in a mobile device (not shown), such asdevice 650. Each of such devices may contain one or more of computingdevice 600, 650, and an entire system may be made up of multiplecomputing devices 600, 650 communicating with each other.

Computing device 650 includes a processor 652, memory 664, aninput/output device such as a display 654, a communication interface666, and a transceiver 668, among other components. The device 650 mayalso be provided with a storage device, such as a microdrive or otherdevice, to provide additional storage. Each of the components 650, 652,664, 654, 666, and 668, are interconnected using various buses, andseveral of the components may be mounted on a common motherboard or inother manners as appropriate.

The processor 652 may process instructions for execution within thecomputing device 650, including instructions stored in the memory 664.The processor may also include separate analog and digital processors.The processor may provide, for example, for coordination of the othercomponents of the device 650, such as control of user interfaces,applications run by device 650, and wireless communication by device650.

Processor 652 may communicate with a user through control interface 658and display interface 656 coupled to a display 654. The display 654 maybe, for example, a Thin Film Transistor (TFT) LCD display or an OrganicLight-Emitting Diode (OLED) display, or other appropriate displaytechnology. The display interface 656 may comprise appropriate circuitryfor driving the display 654 to present graphical and other informationto a user. The control interface 658 may receive commands from a userand convert them for submission to the processor 652. In addition, anexternal interface 662 may be provide in communication with processor652, so as to enable near area communication of device 650 with otherdevices. External interface 662 may provide, for example, for wiredcommunication (e.g., via a docking procedure) or for wirelesscommunication (e.g., via Bluetooth or other such technologies).

The memory 664 stores information within the computing device 650. Inone example implementation, the memory 664 is a computer-readablemedium. In one implementation, the memory 664 is a volatile memory unitor units. In another implementation, the memory 664 is a non-volatilememory unit or units. Expansion memory 674 may also be provided andconnected to device 650 through expansion interface 672, which mayinclude, for example, a SIMM card interface. Such expansion memory 674may provide extra storage space for device 650, or may also storeapplications or other information for device 650. Specifically,expansion memory 674 may include instructions to carry out or supplementthe processes described above, and may include secure information also.Thus, for example, expansion memory 674 may be provide as a securitymodule for device 650, and may be programmed with instructions thatpermit secure use of device 650. In addition, secure applications may beprovided via the SIMM cards, along with additional information.

The memory may include for example, flash memory and/or MRAM memory, asdiscussed below. In one implementation, a computer program product istangibly embodied in an information carrier. The computer programproduct contains instructions that, when executed, perform one or moremethods, such as those described above. The information carrier is acomputer- or machine-readable medium, such as the memory 664, expansionmemory 674, or memory on processor 652.

Device 650 may communicate wirelessly through communication interface666, which may include digital signal processing circuitry wherenecessary. Communication interface 666 may provide for communicationsunder various modes or protocols, such as GSM voice calls, SMS, EMS, orMMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others.Such communication may occur, for example, through radio-frequencytransceiver 668. In addition, short-range communication may occur, suchas using a Bluetooth, WiFi, or other such transceiver (not shown). Inaddition, GPS receiver module 670 may provide additional wireless datato device 650, which may be used as appropriate by applications runningon device 650.

Device 650 may also communication audibly using audio codec 660, whichmay receive spoken information from a user and convert it to usabledigital information. Audio codex 660 may likewise generate audible soundfor a user, such as through a speaker, e.g., in a handset of device 650.Such sound may include sound from voice telephone calls, may includerecorded sound (e.g., voice messages, music files, etc.) and may alsoinclude sound generated by applications operating on device 650.

The computing device 650 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as acellular telephone 680. It may also be implemented as part of a smartphone 682, personal digital assistant, or other similar mobile device.

Various implementations of the systems and techniques described here maybe realized in digital electronic circuitry, integrated circuitry,specially designed ASICs (application specific integrated circuits),computer hardware, firmware, software, and/or combinations thereof.These various implementations may include implementation in one or morecomputer programs that are executable and/or interpretable on aprogrammable system including at least one programmable processor, whichmay be special or general purpose, coupled to receive data andinstructions from, and to transmit data and instructions to, a storagesystem, at least one input device, and at least one output device.

These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and may be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the terms ‘machine-readable medium’ or‘computer-readable medium’ refers to any computer program product,apparatus and/or device (e.g., magnetic discs, optical disks, memory,Programmable Logic Devices (PLDs)) used to provide machine instructionsand/or data to a programmable processor.

To provide for interaction with a user, the systems and techniquesdescribed here may be implemented on a computer having a display device(e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor)for displaying information to the user and a keyboard and a pointingdevice (e.g., a mouse or a trackball) by which the user may provideinput to the computer. Other kinds of devices may be used to provide forinteraction with a user as well; for example, feedback provided to theuser may be any form of sensory feedback (e.g., visual feedback,auditory feedback, or tactile feedback); and input from the user may bereceived in any form, including acoustic, speech, or tactile input.

The system and techniques described here may be implemented in acomputing system that includes a back end component (e.g., as a dataserver), or that includes a middleware component (e.g., an applicationserver), or that includes a front end component (e.g., a client computerhaving a graphical user interface or a Web browser through which a usermay interact with an implementation of the systems and techniquesdescribed here), or any combination of such back end, middleware, orfront end components. The components of the system may be interconnectedby any form or medium of digital data communication (e.g., acommunication network). Examples of communication networks include alocal area network (‘LAN’), a wide area network (‘WAN”), and theInternet.

An electronic document (which for brevity will simply be referred to asa document) may, but need not, correspond to a file. A document may bestored in a portion of a file that holds other documents, in a singlefile dedicated to the document in question, or in multiple coordinatedfiles.

Embodiments of the subject matter and the operations described in thisspecification can be implemented in digital electronic circuitry, or incomputer software, firmware, or hardware, including the structuresdisclosed in this specification and their structural equivalents, or incombinations of one or more of them. Embodiments of the subject matterdescribed in this specification can be implemented as one or morecomputer programs, i.e., one or more modules of computer programinstructions, encoded on computer storage medium for execution by, or tocontrol the operation of, data processing apparatus. Alternatively or inaddition, the program instructions can be encoded on an artificiallygenerated propagated signal, e.g., a machine-generated electrical,optical, or electromagnetic signal, that is generated to encodeinformation for transmission to suitable receiver apparatus forexecution by a data processing apparatus. A computer storage medium canbe, or be included in, a computer-readable storage device, acomputer-readable storage substrate, a random or serial access memoryarray or device, or a combination of one or more of them. Moreover,while a computer storage medium is not a propagated signal, a computerstorage medium can be a source or destination of computer programinstructions encoded in an artificially generated propagated signal. Thecomputer storage medium can also be, or be included in, one or moreseparate physical components or media (e.g., multiple CDs, disks, orother storage devices).

The operations described in this specification can be implemented asoperations performed by a data processing apparatus on data stored onone or more computer-readable storage devices or received from othersources.

The term “data processing apparatus” encompasses all kinds of apparatus,devices, and machines for processing data, including by way of example aprogrammable processor, a computer, a system on a chip, or multipleones, or combinations, of the foregoing The apparatus can includespecial purpose logic circuitry, e.g., an FPGA (field programmable gatearray) or an ASIC (application specific integrated circuit). Theapparatus can also include, in addition to hardware, code that createsan execution environment for the computer program in question, e.g.,code that constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, a cross-platform runtimeenvironment, a virtual machine, or a combination of one or more of them.The apparatus and execution environment can realize various differentcomputing model infrastructures, such as web services, distributedcomputing and grid computing infrastructures.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, declarative orprocedural languages, and it can be deployed in any form, including as astand alone program or as a module, component, subroutine, object, orother unit suitable for use in a computing environment. A computerprogram may, but need not, correspond to a file in a file system. Aprogram can be stored in a portion of a file that holds other programsor data (e.g., one or more scripts stored in a markup languagedocument), in a single file dedicated to the program in question, or inmultiple coordinated files (e.g., files that store one or more modules,sub programs, or portions of code). A computer program can be deployedto be executed on one computer or on multiple computers that are locatedat one site or distributed across multiple sites and interconnected by acommunication network.

The processes and logic flows described in this specification can beperformed by one or more programmable processors executing one or morecomputer programs to perform actions by operating on input data andgenerating output. The processes and logic flows can also be performedby, and apparatus can also be implemented as, special purpose logiccircuitry, e.g., an FPGA (field programmable gate array) or an ASIC(application specific integrated circuit).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer. Generally, aprocessor will receive instructions and data from a read only memory ora random access memory or both.

The essential elements of a computer are a processor for performingactions in accordance with instructions and one or more memory devicesfor storing instructions and data. Generally, a computer will alsoinclude, or be operatively coupled to receive data from or transfer datato, or both, one or more mass storage devices for storing data, e.g.,magnetic, magneto optical disks, or optical disks. However, a computerneed not have such devices. Moreover, a computer can be embedded inanother device, e.g., a mobile telephone, a personal digital assistant(PDA), a mobile audio or video player, a game console, a GlobalPositioning System (GPS) receiver, or a portable storage device (e.g., auniversal serial bus (USB) flash drive), to name just a few.

Devices suitable for storing computer program instructions and datainclude all forms of non volatile memory, media and memory devices,including by way of example semiconductor memory devices, e.g., EPROM,EEPROM, and flash memory devices; magnetic disks, e.g., internal harddisks or removable disks; magneto optical disks; and CD ROM and DVD-ROMdisks. The processor and the memory can be supplemented by, orincorporated in, special purpose logic circuitry.

To provide for interaction with a user, embodiments of the subjectmatter described in this specification can be implemented on a computerhaving a display device, e.g., a CRT (cathode ray tube) or LCD (liquidcrystal display) monitor, for displaying information to the user and akeyboard and a pointing device, e.g., a mouse or a trackball, by whichthe user can provide input to the computer. Other kinds of devices canbe used to provide for interaction with a user as well; for example,feedback provided to the user can be any form of sensory feedback, e.g.,visual feedback, auditory feedback, or tactile feedback; and input fromthe user can be received in any form, including acoustic, speech, ortactile input. In addition, a computer can interact with a user bysending documents to and receiving documents from a device that is usedby the user; for example, by sending web pages to a web browser on auser's client device in response to requests received from the webbrowser.

Embodiments of the subject matter described in this specification can beimplemented in a computing system that includes a back end component,e.g., as a data server, or that includes a middleware component, e.g.,an application server, or that includes a front end component, e.g., aclient computer having a graphical user interface or a Web browserthrough which a user can interact with an implementation of the subjectmatter described in this specification, or any combination of one ormore such back end, middleware, or front end components. The componentsof the system can be interconnected by any form or medium of digitaldata communication, e.g., a communication network. Examples ofcommunication networks include a local area network (“LAN”) and a widearea network (“WAN”), an inter-network (e.g., the Internet), andpeer-to-peer networks (e.g., ad hoc peer-to-peer networks).

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other. In someembodiments, a server transmits data (e.g., an HTML page) to a clientdevice (e.g., for purposes of displaying data to and receiving userinput from a user interacting with the client device). Data generated atthe client device (e.g., a result of the user interaction) can bereceived from the client device at the server.

While this specification contains many specific implementation details,these should not be construed as limitations on the scope of anyinventions or of what may be claimed, but rather as descriptions offeatures specific to particular embodiments of particular inventions.Certain features that are described in this specification in the contextof separate embodiments can also be implemented in combination in asingle embodiment. Conversely, various features that are described inthe context of a single embodiment can also be implemented in multipleembodiments separately or in any suitable subcombination. Moreover,although features may be described above as acting in certaincombinations and even initially claimed as such, one or more featuresfrom a claimed combination can in some cases be excised from thecombination, and the claimed combination may be directed to asubcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the embodiments described above should not be understoodas requiring such separation in all embodiments, and it should beunderstood that the described program components and systems cangenerally be integrated together in a single software product orpackaged into multiple software products.

Thus, particular embodiments of the subject matter have been described.Other embodiments are within the scope of the following claims. In somecases, the actions recited in the claims can be performed in a differentorder and still achieve desirable results. In addition, the processesdepicted in the accompanying figures do not necessarily require theparticular order shown, or sequential order, to achieve desirableresults. In certain implementations, multitasking and parallelprocessing may be advantageous.

The computing system may include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

A number of embodiments of the invention have been described.Nevertheless, it will be understood that various modifications may bemade without departing from the spirit and scope of the invention. Forexample, various forms of the flows shown above may be used, with stepsre-ordered, added, or removed. Also, although several applications ofthe payment systems and methods have been described, it should berecognized that numerous other applications are contemplated.Accordingly, other embodiments are within the scope of the followingclaims.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the embodiments described above should not be understoodas requiring such separation in all embodiments, and it should beunderstood that the described program components and systems maygenerally be integrated together in a single software product orpackaged into multiple software products.

Particular embodiments of the subject matter described in thisspecification have been described. Other embodiments are within thescope of the following claims. For example, the actions recited in theclaims may be performed in a different order and still achieve desirableresults. As one example, the processes depicted in the accompanyingfigures do not necessarily require the particular order shown, orsequential order, to achieve desirable results. In certainimplementations, multitasking and parallel processing may beadvantageous.

What is claimed is:
 1. (canceled)
 2. A computer-implemented methodcomprising: identifying, for one or more of a plurality of documentsthat were published in a web feed, a publication time that the documentwas published in the web feed; identifying, for one or more of thedocuments that were published in the web feed a content-based rank thatis assigned to the document by the web feed; determining, by one or moreservers, a presentation rank for the plurality of the documents thatwere published in the web feed, wherein, for a first subset of theplurality of documents that are to be output in content-based-rankorder, the presentation rank of the document is based on thecontent-based rank that is assigned to the document by the web feed, andwherein, for a different, second subset of the plurality of documentsthat are to be output differently based on other ranks, the presentationrank of the document is based on the publication time that the documentwas published in the web feed; and transmitting, to a client device,links to the first subset and second subset of the documents, whereinthe links are ordered according to the respective presentation rank ofeach document.
 3. The method of claim 2, wherein the content-basedranking of a document is based on an editorial ranking of the document.4. The method of claim 2, wherein the content-based ranking of adocument is based on a reader ranking of the document.
 5. The method ofclaim 4, wherein the reader ranking of the document comprises aquantitative ranking assigned by the reader to the document.
 6. Themethod of claim 4, wherein the reader ranking comprises a numeric countof qualitative comments entered by readers on the document.
 7. Themethod of claim 4, wherein the content-based ranking of a document isfurther based on an editorial ranking.
 8. The method of claim 2, whereinthe first subset includes fewer than all of the editorially rankeddocuments.
 9. The method of claim 2, wherein the second subset includesone or more editorially ranked documents.
 10. The method of claim 2,wherein the links to the first subset and second subset are included ina single list of links.
 11. The method of claim 2, wherein the linksinclude at least one link to a document in the second subset.
 12. Themethod of claim 2, wherein the links to the first subset are separatedfrom the links to the second subset by a fold.
 13. The method of claim2, wherein one of the documents in the first subset is included in thesecond subset and one of the documents in the second submit is includedin the first subset.
 14. A computer-readable medium, comprising softwareinstructions that when executed by one or more processors, cause the oneor more processors to perform operations, the operations comprising:identifying, for each of a plurality of documents that were published ina web feed, a publication time that the document was published in theweb feed; identifying, for each of a plurality of the documents thatwere published in the web feed and that are assigned a content-basedrank, the content-based rank that is assigned to the document by the webfeed; determining, by one or more servers, a presentation rank for eachof the plurality of the documents that were published in the web feed,wherein, for a first subset of the plurality of documents that are to beoutput in content-based-rank order, the presentation rank of thedocument is based on the content-based rank that is assigned to thedocument by the web feed, and wherein, for a second subset of theplurality of documents that are to not be output in content-based-rankorder, the presentation rank of the document is based on a priorityranking assigned by the web feed; and transmitting, to a client device,links to the first subset and second subset of the documents, whereinthe links are ordered according to the respective presentation rank ofeach document.
 15. The computer-readable medium of claim 14, wherein thecontent-based ranking of a document is based on an editorial ranking ofthe document.
 16. The computer-readable medium of claim 15, wherein thecontent-based ranking of a document is further based on a readerranking.
 17. The computer-readable medium of claim 14, wherein the linksto the first subset and second subset are included in a single list oflinks.
 18. A computer-implemented system comprising one or more serversthat are configured to: identify, for each of a plurality of documentsthat were published in a web feed, a publication time that the documentwas published in the web feed; identify, for each of a plurality of thedocuments that were published in the web feed and that are assigned acontent-based rank, the content-based rank that is assigned to thedocument by the web feed; determine a presentation rank for each of theplurality of the documents that were published in the web feed, wherein,for a first subset of the plurality of documents that are to be outputin content-based-rank order, the presentation rank of the document isbased on the content-based rank that is assigned to the document by theweb feed, and wherein, for a second subset of the plurality of documentsthat are to not be output in content-based-rank order, the presentationrank of the document is based on a priority ranking assigned by the webfeed; and transmit, to a client device, links to the first subset andsecond subset of the documents, wherein the links are ordered accordingto the respective presentation rank of each document.
 19. Thecomputer-implemented system of claim 18, wherein the content-basedranking of a document is based on an editorial ranking of the document.20. The computer-readable medium of claim 19, wherein the content-basedranking of a document is further based on a reader ranking.
 21. Thecomputer-implemented system of claim 18, wherein the links to the firstsubset and second subset are included in a single list of links.